#ifndef LOAD_H
#define LOAD_H

#include "component.h"
#include <QVector>

class Load : public Component
{
private:
    QVector<double> loadProfile; // 负载曲线
    double powerFactor;          // 功率因数
    bool isCritical;             // 是否为关键负载

public:
    // 构造函数
    Load(const QString& name, double baseLoad = 100.0);

    // 析构函数
    ~Load();

    // 设置负载曲线
    void setLoadProfile(const QVector<double>& profile);

    // 获取负载曲线
    QVector<double> getLoadProfile() const;

    // 获取指定时间的负载
    double getLoadAtTime(int timeIndex) const;

    // 更新当前负载（基于时间）
    void updateLoad(int timeIndex);

    // 设置功率因数
    void setPowerFactor(double pf);

    // 获取功率因数
    double getPowerFactor() const;

    // 设置是否为关键负载
    void setCritical(bool critical);

    // 检查是否为关键负载
    bool isCriticalLoad() const;

    // 重写基类的获取状态方法
    QString getStatus() const override;
};

#endif // LOAD_H
